//
//  gaojizhizhen.m
//  C9_高级指针课后作业
//
//  Created by dllo on 15/10/16.
//  Copyright (c) 2015年 dllo. All rights reserved.
//

#import "gaojizhizhen.h"




//    1.	（＊＊）写一个函数交换两个结构体变量

void change(Student *a, Student *b)
{

    Student temp = *a;
    *a = *b;
    *b = temp;

}


//    2.	（＊＊）有一学生数组写一函数打印出指定分数段的学生信息

void information(Student *stu, int count)
{

    for (int i = 0; i < count; i++) {
        if (stu[i].score > 60 && stu[i].score < 90) {
            printf("%s %c %.2f %d\n", stu[i].name, stu[i].sex, stu[i].score, stu[i].number );
        }
    }

}

//    3.	（＊＊）有一学生数组，包含5个学生，写一个函数，对学生排序（按学号从小到大），使用结构体指针操作数组元素

void sortByNumber(Student *p, int count)
{
    
    for (int i = 0; i < count - 1; i++) {
        for (int j = 0; j < count - i - 1; count++) {
            if ((p + j)->number > p[j + 1].number) {
                Student temp = p[j];
                p[j] = p[j + 1];
                p[j + 1] = temp;
            }
            
        }
    }
    for (int i = 0; i < count; i++) {
        printf("%s %c %.2f %d\n", p[i].name, p[i].sex, p[i].score, p[i].number);
    }
}
//    4.	（＊＊）有一学生数组，包含5个学生，写一个函数，对学生排序（按姓名从小到大），使用结构体指针操作数组元素

void sortByName(Student *p, int count)
{

    for (int i = 0; i < count; i++) {
        for (int j = 0; j < count - i - 1; j++) {
            if (strcmp(p[i].name, p[i + 1].name) > 0) {
            Student temp = p[j];
            p[j] = p[j + 1];
            p[j + 1] = temp;
        }
        
        }
    }
    for (int i = 0; i < count; i++) {
        printf("%s %c %.2f %d\n", p[i].name, p[i].sex, p[i].score, p[i].number);
}
}





//    5.	（＊＊）有一学生数组，包含5个学生，写一个函数，对学生排序（按分数从小到大），使用结构体指针操作数组元素

void sortByScore(Student *p, int count)
{

    for (int i = 0; i < count - 1; i++) {
        for (int j = 0; j < count - i - 1; j++) {
            if ((p + j)->score > p[j + 1].score) {
                Student temp = p[j];
                p[j] = p[j + 1];
                p[j + 1] = temp;
            }
        }
    }
    for (int i = 0; i < count; i++) {
        printf("%s %c %.2f %d\n", p[i].name, p[i].sex, p[i].score, p[i].number);
}
}



//    6.	（＊＊）定义一个求圆面积的宏
//    7.	（＊＊）定义一个求2个数平均数的宏





